Graphical user interfaces, or "GUIs" as they are often designated, have become an increasingly common and popular feature of computers, especially personal computers (PCs). One of the many advantages of such GUIs is that they allow a user to enter commands by selecting and manipulating graphical display elements, such as icons or buttons, usually with a pointing device, such as a mouse. A mouse is an input device which, when moved over a surface, moves a mouse pointer across the PC display in a corresponding manner. Typically, a mouse has at least two buttons which when pressed, generate to the PC an input relating the user and the location of the mouse pointer on the PC display. "Clicking" will be used herein to refer to the pressing and releasing of a mouse button, usually the left mouse button, unless otherwise specified. The icons of a GUI are designed to behave in a manner similar to the objects they represent. The Apple Macintosh user interface and Microsoft Windows operating environment are two common and very popular examples of GUIs, illustrating the fact that the advantages of GUIs over conventional text-based user interfaces are widely recognized.
Clearly, GUIs significantly reduce the amount of information that a user must recall in order effectively to use the PC. For example, instead of having to remember the name of an application program and the location of the program on a particular disk and within a particular folder or directory, the user need only remember the icon or button associated with the application.
Most PC manufacturers make available a variety of different product configurations to appeal to and suit the needs and desires of various consumer markets. In particular, different product configurations typically vary in terms of what software is preinstalled, or "bundled," on the PC. For example, the software bundled on an inexpensive low-end PC usually differs from that bundled on a more expensive high-end PC in type, quantity or both. Although this is an effective marketing technique, such variations can interfere with the desire of most manufacturers to provide an attractive visual presentation, via a GUI window, of what software resides on the PC, because each different product configurations tends to require customized art work or some other labor-intensive configuration task in order effectively to present the bundled software to the user.
For example, as more fully described in commonly-owned copending U.S. patent application Ser. No. 08/452,068, filed May 26, 1995 pending, the disclosure of which is hereby incorporated by reference in its entirety, the software bundled on a PC may be presented to the user in the form of "software suites." As described in that application, each software suite comprises a compound computer display object that provides a single integrated visual representation of multiple related application programs, documents and/or data files (hereinafter collectively designated "items"). In particular, the related items constituting a software suite are represented by icons, or buttons, overlaid on an attractive background comprising a software suite window, or panel, associated with the software suite. For example, the software bundled on all PCs of a particular manufacturer may be presented to a user via an "Edutainment" software suite for presenting applications and files related to education and entertainment, a "Financial" software suite for presenting for applications and files related to finances, and a "Telephony" software suite for presenting applications and files related to telephone applications.
While it is anticipated that the use of such software suites and the like will simplify the user's mental model of the totality of software bundled on the PC, as well as provide a vehicle by which relatively more important bundled applications can be brought to the user's attention, the effective use of software suites is complicated by the fact that, as indicated above, a single PC manufacturer may produce a number of different product configurations, each having bundled thereon a different combination of software. For example, one particular product configuration may include five items for display via an Edutainment software suite and three items for display via a Financial software suite, while another configuration includes seven items for display via its Edutainment software suite and five items for display via its Financial software suite. Because the relative placement of the buttons, and possibly other elements, within each suite window will depend, at least in part, on the number of items to be represented in the suite, it is conceivable that a manufacturer will have to have a separate software suite window configuration designed for each of the possible combinations of related items that may be preinstalled on a PC. When one considers that, for a single manufacturer, there may be several different groups of related items (e.g., "Edutainment," "Financial," etc.) that may be preinstalled on a PC and that each different group may comprise a different number of items, depending on the product configuration of the PC, it is obvious that the attractive presentation of such bundled software can involve a substantial amount of labor and expense on the part of the manufacturer.
One solution to this problem takes advantage of the ability of GUIs automatically to configure themselves based on variables not known to a programmer at the time the GUI is designed. For instance, a window displaying a directory of files on a file system will have to read the appropriate directory and list all the files it finds, while appropriately formatting the data as it is discovered. This solution is deficient in several respects. For instance, the files in the directory may be presented as identically-sized icons in a fixed-size window, arranged in some type of predefined (e.g., alphabetical) order from left to right, top to bottom. If there are too many files to fit in the window, a scrolling mechanism is provided. This solution may serve the structural needs of programmers, but does not allow for a visually attractive presentation that might be more appropriate for other environments.
Therefore, what is needed is a system for automatically configuring GUI screen displays for presenting bundled software for a variety of PC product configurations in a visually attractive and effective manner.